<!DOCTYPE html>
<html lang="zh-cn" style="--olcb-folder-code-block-max-height: 80vh; --cnb-code-bg: rgb(245, 245, 245); --cnb-code-font-size: 12px; --cnb-code-color: rgb(68, 68, 68);"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="referrer" content="origin-when-cross-origin">
    <meta name="keywords" content="OGRE">
    <meta name="description" content="本文介绍从哪儿开始学习OGRE（Object-Oriented Graphics Rendering Engine的简称，又叫做OGRE 3D），如何在网上找寻OGRE的学习资源。首先是wikipedia的介绍：http://en.wikipedia.org/wiki/OGRE官方网站：http:/">
    <meta property="og:description" content="本文介绍从哪儿开始学习OGRE（Object-Oriented Graphics Rendering Engine的简称，又叫做OGRE 3D），如何在网上找寻OGRE的学习资源。首先是wikipedia的介绍：http://en.wikipedia.org/wiki/OGRE官方网站：http:/">
    <meta http-equiv="Cache-Control" content="no-transform">
    <meta http-equiv="Cache-Control" content="no-siteapp">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>OGRE的学习资源 - liangliangh - 博客园</title>
    <link rel="icon" id="favicon" href="https://assets.cnblogs.com/favicon_v3_2.ico" type="image/x-icon">
    <link rel="canonical" href="https://www.cnblogs.com/liangliangh/p/3572211.html">
    
    <style>#home :not(.cnblogs_code):not(.cnblogs_Highlighter)>pre:not([highlighted]):not([class*="brush:"]) code:not(.hljs), :not(.cnblogs_code):not(.cnblogs_Highlighter)>pre:not([highlighted]):not([class*="brush:"]) code:not(.hljs) {background: rgb(245, 245, 245);
        padding: 12px;
        border: 1px solid rgb(204, 204, 204);
        border-radius: 3px;
        border-color: transparent;
        color: rgb(68, 68, 68);
        font-family: "Courier New", sans-serif;
        font-size: 12px</style><link rel="stylesheet" href="res_files/blog-common.min.css">
    

    <link id="MainCss" rel="stylesheet" href="res_files/bundle-kubrick.min.css">
        <link id="highlighter-theme-cnblogs" type="text/css" rel="stylesheet" href="res_files/cnblogs.css">
    <link type="text/css" rel="stylesheet" href="res_files/custom.css">
    
    <link id="mobile-style" media="only screen and (max-width: 767px)" type="text/css" rel="stylesheet" href="res_files/bundle-kubrick-mobile.min.css">
    
    <link type="application/rss+xml" rel="alternate" href="https://www.cnblogs.com/liangliangh/rss">
    <link type="application/rsd+xml" rel="EditURI" href="https://www.cnblogs.com/liangliangh/rsd.xml">
    <link type="application/wlwmanifest+xml" rel="wlwmanifest" href="https://www.cnblogs.com/liangliangh/wlwmanifest.xml">
    
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "BlogPosting",
      "@id": "https://www.cnblogs.com/liangliangh/p/3572211.html",
      "headline": "OGRE的学习资源",
      "description": "本文介绍从哪儿开始学习OGRE（Object-Oriented Graphics Rendering Engine的简称，又叫做OGRE 3D），如何在网上找寻OGRE的学习资源。首先是wikipedia的介绍：http://en.wikipedia.org/wiki/OGRE官方网站：http://www.ogre3d.org/官网介绍：http://www.ogre3d.org/about特性列表：http://www.ogre3d.org/about/features开发者对OGRE评价：http://www.ogre3d.org/about/testimonials在这里下载OGRE：",
      "image": [
        
      ],
      "author": {
        "@type": "Person",
        "@id": "https://www.cnblogs.com/liangliangh/",
        "name": "liangliangh",
        "url": "https://www.cnblogs.com/liangliangh/"
      },
      "publisher": {
        "@type": "Organization",
        "@id": "https://www.cnblogs.com/",
        "name": "博客园",
        "url": "https://www.cnblogs.com/"
      },
      "datePublished": "2014-02-27T20:20:00.0000000&#x2B;08:00",
      "dateModified": "2014-02-27T22:47:00.0000000&#x2B;08:00",
      "wordCount": "4415",
      "isPartOf": {
        "@type": "Blog",
        "@id": "https://www.cnblogs.com/liangliangh/",
        "name": "亮亮的园子",
        "publisher": {
          "@type": "Organization",
          "@id": "https://www.cnblogs.com/",
          "name": "博客园"
        }
      }
    }
    </script>

    <script>
        var currentBlogId = 151287;
        var currentBlogApp = 'liangliangh';
        var isLogined = false;
        var isBlogOwner = false;
        var skinName = 'kubrick';
        var visitorUserId = '';
        var hasCustomScript = false;
        window.cb_enable_mathjax = true;
        window.mathEngine = 0;
        window.codeHighlightEngine = 1;
        window.enableCodeLineNumber = false;
        window.codeHighlightTheme = 'cnblogs';
        window.darkModeCodeHighlightTheme = 'vs2015';
        window.isDarkCodeHighlightTheme = false;
        window.isDarkModeCodeHighlightThemeDark = true;
        window.isDisableCodeHighlighter = false;
        window.enableCodeThemeTypeFollowSystem = false;
        window.enableMacStyleCodeBlock = false;
    </script>
        <script>
            window.currentPostId = 3572211;
            window.currentPostDateAdded = '2014-02-27 20:20';
        </script>
    <script src="res_files/jquery-3.3.1.min.js"></script>
    <script src="res_files/blog-common.min.js"></script><style>.medium-zoom-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0;
  transition: opacity 300ms;
  will-change: opacity;
}

.medium-zoom--opened .medium-zoom-overlay {
  cursor: pointer;
  cursor: zoom-out;
  opacity: 1;
}

.medium-zoom-image {
  cursor: pointer;
  cursor: zoom-in;
  /*
    The `transition` is marked as "!important" for the animation to happen
    even though it's overriden by another inline `transition` style attribute.

    This is problematic with frameworks that generate inline styles on their
    images (e.g. Gatsby).

    See https://github.com/francoischalifour/medium-zoom/issues/110
   */
  transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) !important;
}

.medium-zoom-image--hidden {
  visibility: hidden;
}

.medium-zoom-image--opened {
  position: relative;
  cursor: pointer;
  cursor: zoom-out;
  will-change: transform;
}
</style><script id="hljs-script" src="res_files/highlight.min.js" type="text/javascript" async=""></script>
    
<meta property="og:image" content="https://images0.cnblogs.com/i/528205/201402/272235221199729.jpg"><script id="mathjax" src="res_files/MathJax.js" type="text/javascript" async=""></script><style type="text/css">.MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
.MathJax_Menu_Button .MathJax_Hover_Arrow {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; -khtml-border-radius: 4px; font-family: 'Courier New',Courier; font-size: 9px; color: #F0F0F0}
.MathJax_Menu_Button .MathJax_Hover_Arrow span {display: block; background-color: #AAA; border: 1px solid; border-radius: 3px; line-height: 0; padding: 4px}
.MathJax_Hover_Arrow:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_Hover_Arrow:hover span {background-color: #CCC!important}
</style><style type="text/css">#MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_About.MathJax_MousePost {outline: none}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 2px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding: 2px 2em; background: transparent}
.MathJax_MenuArrow {position: absolute; right: .5em; padding-top: .25em; color: #666666; font-size: .75em}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuArrow.RTL {left: .5em; right: auto}
.MathJax_MenuCheck {position: absolute; left: .7em}
.MathJax_MenuCheck.RTL {right: .7em; left: auto}
.MathJax_MenuRadioCheck {position: absolute; left: 1em}
.MathJax_MenuRadioCheck.RTL {right: 1em; left: auto}
.MathJax_MenuLabel {padding: 2px 2em 4px 1.33em; font-style: italic}
.MathJax_MenuRule {border-top: 1px solid #CCCCCC; margin: 4px 1px 0px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color: Highlight; color: HighlightText}
.MathJax_MenuDisabled:focus, .MathJax_MenuLabel:focus {background-color: #E8E8E8}
.MathJax_ContextMenu:focus {outline: none}
.MathJax_ContextMenu .MathJax_MenuItem:focus {outline: none}
#MathJax_AboutClose {top: .2em; right: .2em}
.MathJax_Menu .MathJax_MenuClose {top: -10px; left: -10px}
.MathJax_MenuClose {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; font-family: 'Courier New',Courier; font-size: 24px; color: #F0F0F0}
.MathJax_MenuClose span {display: block; background-color: #AAA; border: 1.5px solid; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; line-height: 0; padding: 8px 0 6px}
.MathJax_MenuClose:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_MenuClose:hover span {background-color: #CCC!important}
.MathJax_MenuClose:hover:focus {outline: none}
</style><style type="text/css">.MathJax_Preview .MJXf-math {color: inherit!important}
</style><style type="text/css">.MJX_Assistive_MathML {position: absolute!important; top: 0; left: 0; clip: rect(1px, 1px, 1px, 1px); padding: 1px 0 0 0!important; border: 0!important; height: 1px!important; width: 1px!important; overflow: hidden!important; display: block!important; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none}
.MJX_Assistive_MathML.MJX_Assistive_MathML_Block {width: 100%!important}
</style><style type="text/css">#MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
#MathJax_ZoomFrame {position: relative; display: inline-block; height: 0; width: 0}
#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
</style><style type="text/css">.MathJax_Preview {color: #888}
#MathJax_Message {position: fixed; left: 1px; bottom: 2px; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
.MathJax_Error {color: #CC0000; font-style: italic}
</style><style type="text/css">.MJXp-script {font-size: .8em}
.MJXp-right {-webkit-transform-origin: right; -moz-transform-origin: right; -ms-transform-origin: right; -o-transform-origin: right; transform-origin: right}
.MJXp-bold {font-weight: bold}
.MJXp-italic {font-style: italic}
.MJXp-scr {font-family: MathJax_Script,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-frak {font-family: MathJax_Fraktur,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-sf {font-family: MathJax_SansSerif,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-cal {font-family: MathJax_Caligraphic,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-mono {font-family: MathJax_Typewriter,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-largeop {font-size: 150%}
.MJXp-largeop.MJXp-int {vertical-align: -.2em}
.MJXp-math {display: inline-block; line-height: 1.2; text-indent: 0; font-family: 'Times New Roman',Times,STIXGeneral,serif; white-space: nowrap; border-collapse: collapse}
.MJXp-display {display: block; text-align: center; margin: 1em 0}
.MJXp-math span {display: inline-block}
.MJXp-box {display: block!important; text-align: center}
.MJXp-box:after {content: " "}
.MJXp-rule {display: block!important; margin-top: .1em}
.MJXp-char {display: block!important}
.MJXp-mo {margin: 0 .15em}
.MJXp-mfrac {margin: 0 .125em; vertical-align: .25em}
.MJXp-denom {display: inline-table!important; width: 100%}
.MJXp-denom > * {display: table-row!important}
.MJXp-surd {vertical-align: top}
.MJXp-surd > * {display: block!important}
.MJXp-script-box > *  {display: table!important; height: 50%}
.MJXp-script-box > * > * {display: table-cell!important; vertical-align: top}
.MJXp-script-box > *:last-child > * {vertical-align: bottom}
.MJXp-script-box > * > * > * {display: block!important}
.MJXp-mphantom {visibility: hidden}
.MJXp-munderover, .MJXp-munder {display: inline-table!important}
.MJXp-over {display: inline-block!important; text-align: center}
.MJXp-over > * {display: block!important}
.MJXp-munderover > *, .MJXp-munder > * {display: table-row!important}
.MJXp-mtable {vertical-align: .25em; margin: 0 .125em}
.MJXp-mtable > * {display: inline-table!important; vertical-align: middle}
.MJXp-mtr {display: table-row!important}
.MJXp-mtd {display: table-cell!important; text-align: center; padding: .5em 0 0 .5em}
.MJXp-mtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-mlabeledtr {display: table-row!important}
.MJXp-mlabeledtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mlabeledtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
.MJXp-scale0 {-webkit-transform: scaleX(.0); -moz-transform: scaleX(.0); -ms-transform: scaleX(.0); -o-transform: scaleX(.0); transform: scaleX(.0)}
.MJXp-scale1 {-webkit-transform: scaleX(.1); -moz-transform: scaleX(.1); -ms-transform: scaleX(.1); -o-transform: scaleX(.1); transform: scaleX(.1)}
.MJXp-scale2 {-webkit-transform: scaleX(.2); -moz-transform: scaleX(.2); -ms-transform: scaleX(.2); -o-transform: scaleX(.2); transform: scaleX(.2)}
.MJXp-scale3 {-webkit-transform: scaleX(.3); -moz-transform: scaleX(.3); -ms-transform: scaleX(.3); -o-transform: scaleX(.3); transform: scaleX(.3)}
.MJXp-scale4 {-webkit-transform: scaleX(.4); -moz-transform: scaleX(.4); -ms-transform: scaleX(.4); -o-transform: scaleX(.4); transform: scaleX(.4)}
.MJXp-scale5 {-webkit-transform: scaleX(.5); -moz-transform: scaleX(.5); -ms-transform: scaleX(.5); -o-transform: scaleX(.5); transform: scaleX(.5)}
.MJXp-scale6 {-webkit-transform: scaleX(.6); -moz-transform: scaleX(.6); -ms-transform: scaleX(.6); -o-transform: scaleX(.6); transform: scaleX(.6)}
.MJXp-scale7 {-webkit-transform: scaleX(.7); -moz-transform: scaleX(.7); -ms-transform: scaleX(.7); -o-transform: scaleX(.7); transform: scaleX(.7)}
.MJXp-scale8 {-webkit-transform: scaleX(.8); -moz-transform: scaleX(.8); -ms-transform: scaleX(.8); -o-transform: scaleX(.8); transform: scaleX(.8)}
.MJXp-scale9 {-webkit-transform: scaleX(.9); -moz-transform: scaleX(.9); -ms-transform: scaleX(.9); -o-transform: scaleX(.9); transform: scaleX(.9)}
.MathJax_PHTML .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
</style></head>
<body class="skin-kubrick has-navbar mathjax2"><div id="MathJax_Message" style="display: none;"></div>
    <a name="top"></a>
        <div id="imagebar" class="imagebar-mobile imagebar-text-mobile formobile">
                <a href="https://www.doubao.com/?channel=cnblogs&amp;source=hw_db_cnblogs&amp;type=lunt&amp;theme=bianc" onclick="countCreativeClicks('M2-字节-豆包')" rel="nofollow">
                    <img src="res_files/35695-20250620221146444-645204917.webp" alt="" onload="countCreativeImpressionsOnMobile('M2-字节-豆包')">
                    <span id="m2_impression" style="display:none"></span>
                </a>
        </div>
    <div id="top_nav" class="navbar forpc">
        <nav id="nav_main" class="navbar-main">
            <ul id="nav_left" class="navbar-list navbar-left">
                <li class="navbar-branding">                    
                    <a href="https://www.cnblogs.com/" title="开发者的网上家园" role="banner">
                        <img src="res_files/logo.svg" alt="博客园logo">
                    </a>
                </li>               
                <li><a href="https://cnblogs.vip/">会员</a></li>
                <li><a href="https://www.cnblogs.com/cmt/p/18500368">众包</a></li>
                <li><a href="https://news.cnblogs.com/" onclick="countClicks('nav', 'skin-navbar-news')">新闻</a></li>
                <li><a href="https://q.cnblogs.com/" onclick="countClicks('nav', 'skin-navbar-q')">博问</a></li>
                <li><a href="https://ing.cnblogs.com/" onclick="countClicks('nav', 'skin-navbar-ing')">闪存</a></li>
                    <li><a href="https://www.cnblogs.com/cmt/p/18341478">赞助商</a></li>
                    <li><a href="https://trae.cnblogs.com/" target="_blank">Trae</a></li>
                <li><a href="https://chat2db-ai.com/" target="_blank" onclick="countClicks('nav', 'skin-navbar-chat2db')">Chat2DB</a></li>
            </ul>
            <ul id="nav_right" class="navbar-list navbar-right">
                <li>
                    <form id="zzk_search" class="navbar-search dropdown" action="https://zzk.cnblogs.com/s" method="get" role="search">
                        <input name="w" id="zzk_search_input" placeholder="代码改变世界" type="search" tabindex="3" autocomplete="off">
                        <button id="zzk_search_button" onclick="window.navbarSearchManager.triggerActiveOption()">
                            <img id="search_icon" class="focus-hidden" src="res_files/search.svg" alt="搜索">
                            <img class="hidden focus-visible" src="res_files/enter.svg" alt="搜索">
                        </button>
                        <ul id="navbar_search_options" class="dropdown-menu quick-search-menu">
                            <li tabindex="0" class="active" onclick="zzkSearch(event, document.getElementById('zzk_search_input').value)">
                                <div class="keyword-wrapper">
                                    <img src="res_files/search.svg" alt="搜索">
                                    <div class="keyword"></div>
                                </div>
                                <span class="search-area">所有博客</span>
                            </li>
                                    <li tabindex="1" onclick="zzkBlogSearch(event, 'liangliangh', document.getElementById('zzk_search_input').value)">
                                        <div class="keyword-wrapper">
                                            <img src="res_files/search.svg" alt="搜索">
                                            <div class="keyword"></div>
                                        </div>
                                        <span class="search-area">当前博客</span>
                                    </li>
                        </ul>
                    </form>
                </li>
                <li id="navbar_login_status" class="navbar-list">
                    <a class="navbar-user-info navbar-blog" href="https://i.cnblogs.com/EditPosts.aspx?opt=1" alt="写随笔" title="写随笔" style="display: none;">
                        <img id="new_post_icon" class="navbar-icon" src="res_files/newpost.svg" alt="写随笔">
                    </a>
                    <a id="navblog-myblog-icon" class="navbar-user-info navbar-blog" href="https://passport.cnblogs.com/GetBlogApplyStatus.aspx" alt="我的博客" title="我的博客" style="display: none;">
                        <img id="myblog_icon" class="navbar-icon" src="res_files/myblog.svg" alt="我的博客">
                    </a>
                    <a class="navbar-user-info navbar-message navbar-icon-wrapper" href="https://msg.cnblogs.com/" alt="短消息" title="短消息" style="display: none;">
                        <img id="msg_icon" class="navbar-icon" src="res_files/message.svg" alt="短消息">
                        <span id="msg_count" style="display: none"></span>
                    </a>
                    <a id="navbar_lite_mode_indicator" data-current-page="blog" style="display: none" href="javascript:void(0)" alt="简洁模式" title="简洁模式启用，您在访问他人博客时会使用简洁款皮肤展示">
                        <img class="navbar-icon" src="res_files/lite-mode-on.svg" alt="简洁模式">
                    </a>
                    <div id="user_info" class="navbar-user-info dropdown" style="display: none;">
                        <a class="dropdown-button" href="https://home.cnblogs.com/">
                            <img id="user_icon" class="navbar-avatar" src="res_files/avatar-default.svg" alt="用户头像">
                        </a>
                        <div class="dropdown-menu">
                            <a id="navblog-myblog-text" href="https://passport.cnblogs.com/GetBlogApplyStatus.aspx">我的博客</a>
                            <a href="https://home.cnblogs.com/">我的园子</a>
                            <a href="https://account.cnblogs.com/settings/account">账号设置</a>
                            <a href="https://vip.cnblogs.com/my">会员中心</a>
                            <a href="javascript:void(0)" id="navbar_lite_mode_toggle" title="简洁模式会使用简洁款皮肤显示所有博客">
    简洁模式 <span id="navbar_lite_mode_spinner" class="hide">...</span>
</a>

                            <a href="javascript:void(0)" onclick="account.logout();">退出登录</a>
                        </div>
                    </div>
                    <a class="navbar-anonymous" href="https://account.cnblogs.com/signup" style="display: inline;">注册</a>
                    <a class="navbar-anonymous" href="javascript:void(0);" onclick="account.login()" style="display: inline;">登录</a>
                </li>
            </ul>
        </nav>
    </div>

    

    <div id="header">
    
<h1><a id="Header1_HeaderTitle" class="headermaintitle HeaderMainTitle" href="https://www.cnblogs.com/liangliangh">亮亮的园子</a>
</h1>
<p id="tagline">一个具有学术气质的IT技术博客</p>


</div>
<div id="wrapper">
<div id="main">
    <div id="post_detail">
	<div class="post">
		<h2>
			<a id="cb_post_title_url" class="postTitle2 vertical-middle" href="https://www.cnblogs.com/liangliangh/p/3572211.html" title="发布于 2014-02-27 20:20">
    <span role="heading" aria-level="2">OGRE的学习资源</span>
    

</a>

		</h2>
		<div class="postText"><div id="cnblogs_post_body" class="blogpost-body blogpost-body-html">
<p>&nbsp;</p>
<p>本文介绍从哪儿开始学习OGRE（<strong>Object-Oriented Graphics Rendering Engine</strong>的简称，又叫做OGRE 3D），如何在网上找寻OGRE的学习资源。</p>
<p>&nbsp;</p>
<p>首先是<span style="color: rgba(255, 0, 0, 1)"><strong>wikipedia</strong></span>的介绍：</p>
<p><a href="http://en.wikipedia.org/wiki/OGRE" rel="noopener nofollow">http://en.wikipedia.org/wiki/OGRE</a></p>
<p>&nbsp;</p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>官方网站</strong></span>：</p>
<p><a href="http://www.ogre3d.org/" rel="noopener nofollow">http://www.ogre3d.org/</a></p>
<p>官网介绍：<a href="http://www.ogre3d.org/about" rel="noopener nofollow">http://www.ogre3d.org/about</a></p>
<p>特性列表：<a href="http://www.ogre3d.org/about/features" rel="noopener nofollow">http://www.ogre3d.org/about/features</a></p>
<p>开发者对OGRE评价：<a href="http://www.ogre3d.org/about/testimonials" rel="noopener nofollow">http://www.ogre3d.org/about/testimonials</a></p>
<p>&nbsp;</p>
<p>在这里<span style="color: rgba(255, 0, 0, 1)"><strong>下载OGRE</strong></span>：</p>
<p><a href="http://www.ogre3d.org/download/sdk" rel="noopener nofollow">http://www.ogre3d.org/download/sdk</a></p>
<p>目前最新稳定版为1.9，上一个稳定版为1.8.1，可以两个都下下来，下载下来的.exe文件其实是个压缩包，直接解压。OGRE SDK文件夹下有个文件OgreSDK_vc10_v1-9-0/Docs/<strong>CodingStandards.html</strong>，建议首先读一下，这里讲了OGRE的给类命名的约定等，我简单列一些：</p>
<ol>
<li>每个类的声明和实现都放在单独的源文件中，className.h里声明，className.cpp里实现，除少数类外；</li>
<li>OGRE的所有东西都放在“Ogre”命名空间；</li>
<li>尽量使用STL的容器和算法（所以OGRE很依赖STL）；</li>
</ol>
<p>&nbsp;</p>
<p>好了，看完介绍，可以动手了，官网有<span style="color: rgba(255, 0, 0, 1)"><strong>Tutorials</strong></span>：</p>
<p><a href="http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Tutorials" rel="noopener nofollow">http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Tutorials</a></p>
<p>Basic Tutorials简单讲了OGRE的各个方面：camera, light, shadow, sky, fog, 
input(key and mouse)等等，大概都是一步步教你做，然后简单讲解原理，建议全看，边看边跟着做；Intermediate 
Tutorials和In Depth Tutorials有一定深度，建议对OGRE有初步经验之后再看。</p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>OGRE wiki</strong></span>有更多的资源：</p>
<p><a href="http://www.ogre3d.org/tikiwiki/tiki-index.php" rel="noopener nofollow">http://www.ogre3d.org/tikiwiki/tiki-index.php</a></p>
<p>&nbsp;</p>
<p>一旦开始写代码，<span style="color: rgba(255, 0, 0, 1)"><strong>API参考</strong></span>是必不可少的（OGRE SDK 包里有离线的，也可以从源码用Doxygen自己生成API文档）：</p>
<p><a href="http://www.ogre3d.org/docs/api/1.9/" rel="noopener nofollow">http://www.ogre3d.org/docs/api/1.9/</a></p>
<p>&nbsp;</p>
<p>当你遇到什么特殊问题，可以去<span style="color: rgba(255, 0, 0, 1)"><strong>OGRE论坛</strong></span>看看，很可能别人问过这个问题了，也可以发帖问，不要担心自己的英语不好，老外会很热情的给你解答的：</p>
<p><a href="http://www.ogre3d.org/forums/" rel="noopener nofollow">http://www.ogre3d.org/forums/</a></p>
<p>&nbsp;</p>
<p>在下载的OGRE SDK包里面，有一个.sln文件，可以用Visual Studio打开，那是<span style="color: rgba(255, 0, 0, 1)"><strong>OGRE的example</strong></span>，里面的代码对入门者是很好的参考，编译SampleBrowser项目后运行结果截图如下：</p>
<p><img src="res_files/272235221199729.jpg" alt="" class="medium-zoom-image"></p>
<p>&nbsp;</p>
<p>另外有<span style="color: rgba(255, 0, 0, 1)"><strong>两本英文书籍</strong></span>，可以在<a href="http://ishare.iask.sina.com.cn/" rel="noopener nofollow">新浪爱问共享资料</a>上下载（我发现好多书都能从那里找到）：</p>
<p>Ogre 3D 1.7 Beginner's Guide (Felix Kerger, 2010)</p>
<p>OGRE 3D 1.7 Application Development Cookbook (Ilya Grinblat, Alex Peterson, 2012)</p>
<p>第一本书我读了大部分了，内容形式是那种举例子教你做的，例子都较为简答（跟Basic Tutorials一个级别），适合入门，但OGRE背后的原理涉及很少；第二本是也是以应用为主的。怎么说呢，这两本书可以用来入门吧。</p>
<p>Pro OGRE 3D Programming是另一本OGRE的书，但太旧了，不建议看。</p>
<p>&nbsp;</p>
<p>《OGRE 3D游戏开发框架指南》（邸锐，2010）是我能找到的为数不多的<span style="color: rgba(255, 0, 0, 1)"><strong>中文书籍</strong></span>，我没看，因为我看目录也是以例子为主的。</p>
<p>&nbsp;</p>
<p>当你对OGRE有了更多经验之后（能构建需要的场景，添加鼠标键盘响应，帧事件），你可能想了解OGRE背后的东西，比如材质脚本怎么写，着色器脚本怎么写等等，可以看看<span style="color: rgba(255, 0, 0, 1)"><strong>OGRE manual</strong></span>：</p>
<p><a href="http://www.ogre3d.org/docs/manual/manual_toc.html#SEC_Contents" rel="noopener nofollow">http://www.ogre3d.org/docs/manual/manual_toc.html#SEC_Contents</a></p>
<p>OGRE SDK 1.8.1包里也有。</p>
<p>&nbsp;</p>
<p>在更深入探索OGRE之前你可能需要了解一下设计模式（得益于此，OGRE才有这么优美的设计）、STL标准库、C++模板等。哦，还有<span style="color: rgba(255, 0, 0, 1)"><strong>图形学相关理论</strong></span>，我推荐浙江大学的一个图形学课程的网站，看看上面给出的上课PPT之后你会对图形学有大致了解：</p>
<p><a href="http://staff.ustc.edu.cn/~zhuang/acg/index.htm" rel="noopener nofollow">http://staff.ustc.edu.cn/~zhuang/acg/index.htm</a></p>
<p>&nbsp;</p>
<p>剩下的估计是看<span style="color: rgba(255, 0, 0, 1)"><strong>源代码</strong></span>了吧。</p>
<p>&nbsp;&nbsp;</p>
</div>
<div class="clear"></div>
<div id="blog_post_info_block" role="contentinfo">



<div id="EntryTag" class="detail-post-tags">
    标签: 
            <a href="https://www.cnblogs.com/liangliangh/tag/OGRE/">OGRE</a></div>
    <div id="blog_post_info">
<div id="green_channel">
        <a href="javascript:void(0);" id="green_channel_digg" onclick="DiggIt(3572211,cb_blogId,1);green_channel_success(this,'谢谢推荐！');">好文要顶</a>
        <a id="green_channel_follow" onclick="follow('21c12945-41bc-e211-b39b-90b11c0b1faa');" href="javascript:void(0);">关注我</a>
    <a id="green_channel_favorite" onclick="AddToWz(cb_entryId);return false;" href="javascript:void(0);">收藏该文</a>
    <a id="green_channel_wechat" href="javascript:void(0);" onclick="shareManager.wechatShare()">微信分享</a>
</div>
<div id="author_profile">
    <div id="author_profile_info" class="author_profile_info">
            <a href="https://home.cnblogs.com/u/liangliangh/" target="_blank"><img src="res_files/20130514145600.png" class="author_avatar" alt=""></a>
        <div id="author_profile_detail" class="author_profile_info">
            <a href="https://home.cnblogs.com/u/liangliangh/">liangliangh</a>
            <br>
            <a href="https://home.cnblogs.com/u/liangliangh/followers/">粉丝 - <span class="follower-count">273</span></a>
            <a href="https://home.cnblogs.com/u/liangliangh/followees/">关注 - <span class="following-count">4</span></a><br>
        </div>
    </div>
    <div class="clear"></div>
    <div id="author_profile_honor"></div>
    <div id="author_profile_follow" class="follow-tip">
                <a href="javascript:void(0);" onclick="follow('21c12945-41bc-e211-b39b-90b11c0b1faa');return false;">+加关注</a>
    </div>
</div>
<div id="div_digg">
    <div class="diggit" onclick="votePost(3572211,'Digg')">
        <span class="diggnum" id="digg_count">3</span>
    </div>
    <div class="buryit" onclick="votePost(3572211,'Bury')">
        <span class="burynum" id="bury_count">0</span>
    </div>
    <div class="clear"></div>
    <div class="diggword" id="digg_tips">
    </div>
        <div id="vip_tip"><a class="tip" href="https://cnblogs.vip/" target="_blank">升级成为会员</a></div>
</div>

<script type="text/javascript">
    currentDiggType = 0;
</script>
</div>
    <div class="clear"></div>
    <div id="post_next_prev">

    <a href="https://www.cnblogs.com/liangliangh/p/3565136.html" class="p_n_p_prefix">« </a> 上一篇：    <a href="https://www.cnblogs.com/liangliangh/p/3565136.html" data-featured-image="" title="发布于 2014-02-25 23:00">OpenMP编程总结表</a>
    <br>
    <a href="https://www.cnblogs.com/liangliangh/p/3572294.html" class="p_n_p_prefix">» </a> 下一篇：    <a href="https://www.cnblogs.com/liangliangh/p/3572294.html" data-featured-image="" title="发布于 2014-02-27 22:37">OGRE 1.9 的第一个程序（OGRE HelloWorld程序）</a>

</div>
</div></div>
		<p class="postfoot">
			posted on 
<span id="post-date" data-last-update-days="0.10208333333333333" data-date-updated="2014-02-27 22:47">2014-02-27 20:20</span>&nbsp;
<a href="https://www.cnblogs.com/liangliangh">liangliangh</a>&nbsp;
阅读(<span id="post_view_count">3789</span>)&nbsp;
评论(<span id="post_comment_count">2</span>)&nbsp;
&nbsp;
<a href="javascript:void(0)" onclick="AddToWz(3572211);return false;">收藏</a>&nbsp;
<a href="javascript:void(0)" onclick="reportManager.report({ currentUserId: '', targetType: 'blogPost', targetId: '3572211', targetLink: 'https://www.cnblogs.com/liangliangh/p/3572211.html', title: 'OGRE的学习资源' })">举报</a>

		</p>
	</div>
	
	
	
<script>
    var cb_entryId = 3572211, cb_entryCreatedDate = '2014-02-27 20:20', cb_postType = 1, cb_postTitle = 'OGRE的学习资源';
    var allowComments = true, cb_blogId = 151287, cb_blogApp = 'liangliangh', cb_blogUserGuid = '21c12945-41bc-e211-b39b-90b11c0b1faa';
    mermaidRender.render()
    markdown_highlight()
    zoomManager.apply("#cnblogs_post_body img:not(.code_img_closed):not(.code_img_opened)");    
</script>
<a id="!comments"></a>
<div id="blog-comments-placeholder"></div>
<div id="comment_form" class="commentform">
    <a name="commentform"></a>
    <div id="divCommentShow"></div>
    <div id="comment_nav">
        <div class="comment-nav-right">
            <span id="span_refresh_tips"></span><a href="#" onclick="return RefreshPage();">刷新页面</a><a href="#top">返回顶部</a>
        </div>
    </div>
    <div id="comment_form_container"><div class="login_tips">
    登录后才能查看或发表评论，立即 <a rel="nofollow" href="javascript:void(0);" class="underline" onclick="return account.login('!comments');">登录</a> 或者
    <a href="https://www.cnblogs.com/">逛逛</a> 博客园首页
</div>
</div>
    <div class="ad_text_commentbox" id="ad_text_under_commentbox"></div>
        <div id="cnblogs_ch"><a href="https://www.cnblogs.com/cmt/p/19026536" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-飞算科技'})">【推荐】飞算科技，让代码飞：欢迎体验 JavaAI 开发助手，参加炫技赛</a><br><a href="http://www.uccpsoft.com/index.htm" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-UCanCode'})">【推荐】100%开源！大型工业跨平台软件C++源码提供，建模，组态！</a><br><a href="https://www.cnblogs.com/cmt/p/19004092" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-TRAE'})">【推荐】AI 的力量，开发者的翅膀：欢迎使用 AI 原生开发工具 TRAE</a><br><a href="https://www.cnblogs.com/HarmonyOS5/p/18974773" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-鸿蒙'})">【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动，百万大奖等你挑战</a><br><a href="http://ishell.cc/" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-IShell'})">【推荐】轻量又高性能的 SSH 工具 IShell：AI 加持，快人一步</a><br></div>
    <div id="opt_under_post"></div>
        <div id="blog_c1" class="under-post-card">
            <a href="https://www.trae.com.cn/?utm_source=advertising&amp;utm_medium=cnblogs_ug_cpa&amp;utm_term=hw_trae_cnblogs" rel="nofollow" target="_blank" onclick="countCreativeClicks('C1-字节-trae')">
                <img src="res_files/35695-20250721113025222-149852564.webp" onload="countCreativeImpressions('C1-字节-trae')" alt="" style="width:300px!important;height:250px!important;min-width:300px!important;max-width:300px!important;">
                <span id="c1_impression" style="display:none"></span>
            </a>
        </div>
    <div id="under_post_card1"><div class="under-post-card">
<b>编辑推荐：</b>
<br>

· <a href="https://www.cnblogs.com/sdcb/p/19024248/my-favorit-csharp-14-feature" target="_blank">我最喜欢的 C# 14 新特性</a>
    <br>
· <a href="https://www.cnblogs.com/xiaoxi666/p/19019449" target="_blank">程序员究竟要不要写文章</a>
    <br>
· <a href="https://www.cnblogs.com/sdcb/p/19019424/csharp-circular-buffer" target="_blank">一个被BCL遗忘的高性能集合：C# CircularBuffer<t>深度解析</t></a>
    <br>
· <a href="https://www.cnblogs.com/kklldog/p/19020718" target="_blank">如何正确实现一个 BackgroundService</a>
    <br>
· <a href="https://www.cnblogs.com/sdcb/p/19013541/linq-abstraction-and-perf-modern-programming-language" target="_blank">抽象与性能：从 LINQ 看现代 .NET 的优化之道</a>
    <br>
</div></div>
    <div id="under_post_card2"><div class="itnews under-post-card">
    <b>阅读排行：</b>
    <br>
 ·          <a href="https://www.cnblogs.com/sdcb/p/19026035/unimplemented-csharp-14-features" target="_blank">那些被推迟的 C# 14 特性及其背后的故事</a>
        <br>
 ·          <a href="https://www.cnblogs.com/listen80/p/19026582" target="_blank">手撸一个Vue(看不懂可以举报)</a>
        <br>
 ·          <a href="https://www.cnblogs.com/HarmonyOS5/p/19023040" target="_blank">餐饮服务与软件创新的融合：解析海底捞 APP 的 Flutter 鸿蒙开发之路</a>
        <br>
 ·          <a href="https://www.cnblogs.com/cmt/p/19026536" target="_blank">飞算科技，让代码飞：体验 JavaAI 开发助手，参加炫技赛</a>
        <br>
 ·          <a href="https://www.cnblogs.com/powertoolsteam/p/19026609" target="_blank">.NET 10 新增功能系列文章5——C# 14 中的新增功能</a>
        <br>
</div></div>
    <div id="HistoryToday" class="under-post-card"></div>
    <script type="text/javascript">
        var commentManager = new blogCommentManager();
        commentManager.renderComments(0);
        fixPostBody();
        window.footnoteTipManager.generateFootnoteTips();

                                window.tocManager.displayDisableTocTips = false;
                                window.tocManager.generateToc();
            
                                    setTimeout(function() { countViews(cb_blogId, cb_entryId); }, 50);
            
                                deliverT2();
                                deliverC1C2();
                                loadNewsAndKb();
            
                                    LoadPostCategoriesTags(cb_blogId, cb_entryId);
            
                                LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
                                GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate, cb_postType);
                                loadOptUnderPost();
                                GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);
                </script>
</div>

</div>

    
</div>
<div id="rightmenu">
    
        <div id="sidebar_news" class="newsItem">
    <h3>公告</h3>
	<div id="blog-news" class="sidebar-news">
    <div id="sidebar_news_container"><div id="profile_block">
    昵称：
    <a href="https://home.cnblogs.com/u/liangliangh/">
        liangliangh
    </a>
    <br>
    园龄：
    <a href="https://home.cnblogs.com/u/liangliangh/" title="入园时间：2013-05-14">
        12年2个月
    </a>
    <br>
    粉丝：
    <a class="follower-count" href="https://home.cnblogs.com/u/liangliangh/followers/">
        273
    </a>
    <br>
    关注：
    <a class="folowing-count" href="https://home.cnblogs.com/u/liangliangh/followees/">
        4
    </a>
    <div id="p_b_follow" class="follow-tip">
<a href="javascript:void(0)" onclick="follow('21c12945-41bc-e211-b39b-90b11c0b1faa')">+加关注</a></div>
    <script>getFollowStatus('21c12945-41bc-e211-b39b-90b11c0b1faa');</script>
</div>
</div>
</div>
<script>loadBlogNews();</script>

 
</div>
<div id="sidebar_c3"></div>
        
<h3>导航</h3>
<ul>
			<li><a id="blog_nav_sitehome" class="menu" href="https://www.cnblogs.com/">
博客园</a>
</li>
			<li>
<a id="blog_nav_myhome" class="menu" href="https://www.cnblogs.com/liangliangh/">
首页</a>
</li>
			<li>


</li>
			<li>
<a id="blog_nav_contact" class="menu" href="https://msg.cnblogs.com/send/liangliangh">
联系</a></li>
			<li>
<a id="blog_nav_rss" class="menu" href="javascript:void(0)" data-rss="https://www.cnblogs.com/liangliangh/rss/">
订阅</a>
<a id="blog_nav_rss_image" href="https://www.cnblogs.com/liangliangh/rss/">
    <img src="res_files/xml.gif" alt="订阅">
</a></li>
			<li>
<a id="blog_nav_admin" class="menu" href="https://i.cnblogs.com/">
管理</a>
</li>
</ul>


        <div id="calendar"><div id="blog-calendar" style="display:none"></div></div>                
                    <script>loadBlogDefaultCalendar();</script>
        <h3>统计</h3>
	<ul>
		<li>随笔 - 32</li>
		<li>文章 - 0</li>
		<li>评论 - 151</li>
		<li>阅读 - 
<span title="总阅读数: 306829">
30万</span></li>
</ul>


        <div id="blog-sidecolumn"><div id="sidebar_search" class="sidebar-block">
    <div class="mySearch my-search">
        <h3 class="catListTitle">搜索</h3>
        <div id="sidebar_search_box">
            <div id="widget_my_zzk" class="div_my_zzk">
                <input type="text" id="q" onkeydown="return zzk_go_enter(event);" class="input_my_zzk">&nbsp;<input onclick="zzk_go()" type="button" value="找找看" id="btnZzk" class="btn_my_zzk">
            </div>
            
        </div>
    </div>
</div>





<div id="sidebar_toptags" class="sidebar-block">
    <h3><a href="https://www.cnblogs.com/liangliangh/tag/" class="sidebar-card-title-a">我的标签</a></h3>
<div id="MyTag">
    <ul>
                <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/OpenGL/">OpenGL<span class="tag-count">(7)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/C%2B%2B/">C++<span class="tag-count">(5)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/Matlab/">Matlab<span class="tag-count">(4)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/OGRE/">OGRE<span class="tag-count">(3)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/Machine%20Learning/">Machine Learning<span class="tag-count">(3)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/Bullet/">Bullet<span class="tag-count">(3)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/VTK/">VTK<span class="tag-count">(2)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/OpenMP/">OpenMP<span class="tag-count">(2)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/Computer%20Vision/">Computer Vision<span class="tag-count">(2)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/liangliangh/tag/VC%2B%2B/">VC++<span class="tag-count">(1)</span></a>
        </li>
    <li>
        <a href="https://www.cnblogs.com/liangliangh/tag/">更多</a>
    </li>

    </ul>
</div>

</div>

<div id="sidebar_scorerank" class="sidebar-block">
    <h3>积分与排名</h3>
<ul>
    <li>
        积分 - 
83689
    </li>
    <li>
        排名 - 
19709
    </li>
</ul>
</div>

<div id="sidebar_categories">

    <h3>
        
随笔档案<span class="sidebar-category-item-count">
    (32)
</span>


    </h3>
    <ul>

            <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2016/08" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2016年8月(2)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2015/11" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2015年11月(1)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2015/08" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2015年8月(1)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2015/01" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2015年1月(1)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2014/12" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2014年12月(3)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2014/11" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2014年11月(3)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2014/06" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2014年6月(2)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2014/05" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2014年5月(3)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2014/03" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2014年3月(6)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2014/02" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2014年2月(5)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2014/01" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2014年1月(1)</a>
 
            </li>                    <li data-category-list-item-visible="true" style="display: block">
                <a href="https://www.cnblogs.com/liangliangh/p/archive/2013/07" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link " rel="" target="">2013年7月(4)</a>
 
            </li>                
    </ul>
</div>

<div id="sidebar_topviewedposts" class="sidebar-block">
    
<div id="topview_posts_wrap">
    <h3 class="catListTitle">
        <a href="https://www.cnblogs.com/liangliangh/most-viewed" class="sidebar-card-title-a">
    阅读排行榜
</a>

    </h3>
    <div id="TopViewPostsBlock">
        <ul style="word-break:break-all">
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/4219879.html">
                            1. C++模板元编程（C++ template metaprogramming）(59251)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/3565234.html">
                            2. OpenMP共享内存并行编程详解(49287)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/4131103.html">
                            3. OpenGL阴影，Shadow Mapping（附源程序）(19657)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/3734261.html">
                            4. Matlab编程基础(19202)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/4165228.html">
                            5. OpenGL阴影，Shadow Volumes（附源程序，使用 VCGlib ）(15671)
                        </a>
                    </li>
        </ul>
    </div>
</div>
</div>

<div id="sidebar_topcommentedposts" class="sidebar-block">
    <div id="topfeedback_posts_wrap">
    <h3 class="catListTitle">
        <a href="https://www.cnblogs.com/liangliangh/most-commented" class="sidebar-card-title-a">评论排行榜</a>

    </h3>
    <div id="TopFeedbackPostsBlock">
        <ul style="word-break:break-all">
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/4165228.html">
                            1. OpenGL阴影，Shadow Volumes（附源程序，使用 VCGlib ）(47)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/4219879.html">
                            2. C++模板元编程（C++ template metaprogramming）(35)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/4131103.html">
                            3. OpenGL阴影，Shadow Mapping（附源程序）(18)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/4089582.html">
                            4. OpenGL坐标变换及其数学原理，两种摄像机交互模型（附源程序）(6)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/liangliangh/p/3747868.html">
                            5. Matlab绘图基础(6)
                        </a>
                    </li>
        </ul>
    </div>
</div>
</div>

<div id="sidebar_topdiggedposts" class="sidebar-block">
    
<div id="topdigg_posts_wrap">
    <div class="catListView">
        <h3 class="catListTitle">
            <a href="https://www.cnblogs.com/liangliangh/most-liked" class="sidebar-card-title-a">推荐排行榜</a>

        </h3>
        <div id="TopDiggPostsBlock">
            <ul style="word-break: break-all">
                        <li>
                            <a href="https://www.cnblogs.com/liangliangh/p/4219879.html">
                                1. C++模板元编程（C++ template metaprogramming）(39)
                            </a>
                        </li>
                        <li>
                            <a href="https://www.cnblogs.com/liangliangh/p/3764420.html">
                                2. 计算机图形学的学习资源(14)
                            </a>
                        </li>
                        <li>
                            <a href="https://www.cnblogs.com/liangliangh/p/4131103.html">
                                3. OpenGL阴影，Shadow Mapping（附源程序）(10)
                            </a>
                        </li>
                        <li>
                            <a href="https://www.cnblogs.com/liangliangh/p/3765221.html">
                                4. OpenGL的学习资源(8)
                            </a>
                        </li>
                        <li>
                            <a href="https://www.cnblogs.com/liangliangh/p/3565234.html">
                                5. OpenMP共享内存并行编程详解(8)
                            </a>
                        </li>
            </ul>
        </div>
    </div>
</div>
</div><div id="sidebar_recentcomments" class="sidebar-block">
    <div id="recent_comments_wrap" class="RecentComment">
    <h3 class="catListTitle"><a href="https://www.cnblogs.com/liangliangh/comments" class="sidebar-card-title-a">最新评论</a></h3>    
    <div class="RecentCommentBlock">
        <ul>
                <li class="recent_comment_title"><a href="https://www.cnblogs.com/liangliangh/p/4219879.html">1. Re:C++模板元编程（C++ template metaprogramming）</a></li>
                <li class="recent_comment_body">// 函数模板 
template&lt;typename T&gt; bool equivalent(const T&amp; a, const T&amp; 
b){ return !(a &lt; b) &amp;&amp; !(b &lt; a); }...</li>
                <li class="recent_comment_author">--^_^~</li>
                <li class="recent_comment_title"><a href="https://www.cnblogs.com/liangliangh/p/3565234.html">2. Re:OpenMP共享内存并行编程详解</a></li>
                <li class="recent_comment_body"><p>写的太好了</p>
</li>
                <li class="recent_comment_author">--luylcs</li>
                <li class="recent_comment_title"><a href="https://www.cnblogs.com/liangliangh/p/4219879.html">3. Re:C++模板元编程（C++ template metaprogramming）</a></li>
                <li class="recent_comment_body">`#include &lt;iostream&gt; template&lt;typename T&gt; class aTMP { public: void f1() { stdcout &lt;&lt; "f1()\n"; } vo...</li>
                <li class="recent_comment_author">--smbzhang</li>
                <li class="recent_comment_title"><a href="https://www.cnblogs.com/liangliangh/p/4219879.html">4. Re:C++模板元编程（C++ template metaprogramming）</a></li>
                <li class="recent_comment_body"><p>c++ 模板编程过程中遇到编译错误，却看不懂。有没有什么办法让编译器生成模板实例化后的代码？来查找问题出错的原因</p>
</li>
                <li class="recent_comment_author">--goodcitizen</li>
                <li class="recent_comment_title"><a href="https://www.cnblogs.com/liangliangh/p/3565234.html">5. Re:OpenMP共享内存并行编程详解</a></li>
                <li class="recent_comment_body"><p>请问，sections中的section不能指定由哪个线程来运行吗？</p>
</li>
                <li class="recent_comment_author">--郁结</li>
        </ul>
    </div>
</div>
</div></div>
                    <script>loadBlogSideColumn();</script>
    
</div>
</div>
<div class="clear"></div>
<div id="footer">
    <a href="https://www.cnblogs.com/" id="footer_site_link" class="footer-brand">博客园</a>	 <span class="footer-copyright"> &nbsp;©&nbsp; 2004-2025</span>
<br><span class="footer-icp">
    <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=33010602011771"><img src="res_files/ghs.png">浙公网安备 33010602011771号</a>
    <a href="https://beian.miit.gov.cn/" target="_blank">浙ICP备2021040463号-3</a>
</span>

</div>





    

    <input type="hidden" id="antiforgery_token" value="CfDJ8G33EJ5dWE5OhU_7yPrjq1-4y-Cl1yWtdyozPbznTmiozRg6iDNeNMEcLYoobjJj2BYGXHK3uxMjT73IRrQ1zou13htI1nUmI9m7skWIAU_SkwWiln3Uk5thuNx27ZbtH3_VOePZpS4L-HUAW-_OqdI">
    <script async="" src="res_files/js"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag() { dataLayer.push(arguments); }
    gtag('js', new Date());
    gtag('config', 'G-M95P3TTWJZ');
</script>
<script defer="defer" src="res_files/hm.js"></script>


<div style="z-index: 998; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); display: none; flex-direction: column; align-items: center; justify-content: center">
<div style="background: #fff;padding: 30px; margin: 30px; border-radius: 16px;">
  <div style="width: 200px; height: 200px; background: rgba(255, 255, 255, 0.8); position: absolute; top: -100px; right: -100px; border-radius: 100px"></div>
  <div style="text-align: center; font-size: 18px; margin-bottom: 10px;">点击右上角即可分享</div>
  <img src="res_files/35695-20230906145857937-1471873834.gif" alt="微信分享提示">
</div>   
    </div><button class="charm-bar-item charm-bar-handle hidden" type="button" title="显示工具栏"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="logo">
  <style>
    .main {
      fill: #FFF;
    }

    @media (prefers-color-scheme: dark) {
      .main {
        fill: #59E8EB;
      }
    }
  </style>
  <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
    <g transform="translate(-240.000000, -192.000000)">
      <g id="VIP_3_line" transform="translate(240.000000, 192.000000)">
        <path d="M24,0 L24,24 L0,24 L0,0 L24,0 Z M12.5934901,23.257841 L12.5819402,23.2595131 L12.5108777,23.2950439 L12.4918791,23.2987469 L12.4918791,23.2987469 L12.4767152,23.2950439 L12.4056548,23.2595131 C12.3958229,23.2563662 12.3870493,23.2590235 12.3821421,23.2649074 L12.3780323,23.275831 L12.360941,23.7031097 L12.3658947,23.7234994 L12.3769048,23.7357139 L12.4804777,23.8096931 L12.4953491,23.8136134 L12.4953491,23.8136134 L12.5071152,23.8096931 L12.6106902,23.7357139 L12.6232938,23.7196733 L12.6232938,23.7196733 L12.6266527,23.7031097 L12.609561,23.275831 C12.6075724,23.2657013 12.6010112,23.2592993 12.5934901,23.257841 L12.5934901,23.257841 Z M12.8583906,23.1452862 L12.8445485,23.1473072 L12.6598443,23.2396597 L12.6498822,23.2499052 L12.6498822,23.2499052 L12.6471943,23.2611114 L12.6650943,23.6906389 L12.6699349,23.7034178 L12.6699349,23.7034178 L12.678386,23.7104931 L12.8793402,23.8032389 C12.8914285,23.8068999 12.9022333,23.8029875 12.9078286,23.7952264 L12.9118235,23.7811639 L12.8776777,23.1665331 C12.8752882,23.1545897 12.8674102,23.1470016 12.8583906,23.1452862 L12.8583906,23.1452862 Z M12.1430473,23.1473072 C12.1332178,23.1423925 12.1221763,23.1452606 12.1156365,23.1525954 L12.1099173,23.1665331 L12.0757714,23.7811639 C12.0751323,23.7926639 12.0828099,23.8018602 12.0926481,23.8045676 L12.108256,23.8032389 L12.3092106,23.7104931 L12.3186497,23.7024347 L12.3186497,23.7024347 L12.3225043,23.6906389 L12.340401,23.2611114 L12.337245,23.2485176 L12.337245,23.2485176 L12.3277531,23.2396597 L12.1430473,23.1473072 Z" id="MingCute" fill-rule="nonzero"></path>
        <path class="main" d="M2.33789,4.86283 C1.86918,4.02957 2.47132,3 3.42736,3 L9.70837,3 C10.2488,3 10.7475,3.29076 11.0138,3.7611 L12.9999,7.26995 L14.986,3.7611 C15.2523,3.29076 15.7509,3 16.2914,3 L20.5724,3 C21.5285,3 22.1306,4.02957 21.6619,4.86282 L13.0894,20.1029 C12.6115,20.9525 11.3883,20.9525 10.9104,20.1029 L2.33789,4.86283 Z M4.70974,5 L11.9999,17.9603 L19.29,5 L16.5829,5 L12.9999,11.3301 L9.41685,5 L4.70974,5 Z"></path>
      </g>
    </g>
  </g>
</svg> </button><div class="charm-bar-wrapper"><div class="charm-bar-main"><div class="charm-bar-panel inactive hidden"></div><div class="charm-bar"><a class="charm-bar-item tongyi" target="_blank" title="" href="https://www.trae.cn/?utm_source=community&amp;utm_medium=CPA_cnblogs&amp;utm_campaign=webtest"><span style="font-size: 22px; font-weight: 500; margin-left: 5px; letter-spacing: 2px; ">字节旗下的 AI IDE</span></a><button class="charm-bar-item" type="button" title="隐藏工具栏"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2.5" stroke="currentColor" class="size-6">
  <path stroke-linecap="round" stroke-linejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5"></path>
</svg>
</button></div></div></div></body></html>